[web-shared] reskin json viewer (no duplicates, better colours and navigation)#2434
Conversation
Expanded objects/arrays now render bracket delimiters ({ … } / [ … ])
instead of repeating the inline preview alongside the child tree.
Co-authored-by: Cursor <cursoragent@cursor.com>
🦋 Changeset detectedLatest commit: 3658c1b The changes in this PR will be included in the next version bump. This PR includes changesets to release 16 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
The react-inspector removal landed in package.json but the lockfile was reverted during cleanup, breaking frozen-lockfile installs in CI. Co-authored-by: Cursor <cursoragent@cursor.com>
🧪 E2E Test Results✅ All tests passed Summary
Details by Category✅ ▲ Vercel Production
✅ 💻 Local Development
✅ 📦 Local Production
✅ 🐘 Local Postgres
✅ 🪟 Windows
✅ 📋 Other
|
📊 Benchmark Results
workflow with no steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) workflow with 1 step💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) | Express workflow with 10 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) | Express workflow with 25 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) workflow with 50 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) Promise.all with 10 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) Promise.all with 25 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) Promise.all with 50 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) Promise.race with 10 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) Promise.race with 25 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) Promise.race with 50 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) workflow with 10 sequential data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) workflow with 25 sequential data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) workflow with 50 sequential data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) workflow with 10 concurrent data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) workflow with 25 concurrent data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) workflow with 50 concurrent data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) Stream Benchmarks (includes TTFB metrics)workflow with stream💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) stream pipeline with 5 transform steps (1MB)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) | Express 10 parallel streams (1MB each)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) fan-out fan-in 10 streams (1MB each)💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) SummaryFastest Framework by WorldWinner determined by most benchmark wins
Fastest World by FrameworkWinner determined by most benchmark wins
Column Definitions
Worlds:
|
Remove the test suite and its jsdom/@testing-library devDependencies to avoid adding new packages. Keeps the data inspector code unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>
Move the class-name map and CSS string out of the component into data-inspector.styles.ts for readability. Still injected via the hoistable <style>; no behavior or dependency change. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…2584) Export serializeForClipboard and cover its clipboard formatting (strings, primitives, pretty-printed JSON, circular/BigInt fallbacks) plus CopyableDataBlock/EncryptedDataBlock rendering. Co-authored-by: Cursor Agent <cursoragent@cursor.com>
|
Backport PR opened against |
Summary
Reskins the
@workflow/web-shareddata inspector (the JSON viewer used across the o11y UI). The oldreact-inspector-based renderer duplicated the inline preview next to the expanded child tree and had theme/color quirks. This swaps it for an in-house tree renderer with cleaner output and no extra dependency.What changed
data-inspector.tsx): renders JSON as a collapsible tree using bracket notation ({ … }/[ … ]) instead of repeating the inline preview alongside the child tree. Adds colored keys, typed value colors,▸/▾disclosure icons, trailing commas, and a...collapsed indicator.react-inspector: removed the dependency frompackage.jsonand syncedpnpm-lock.yaml. The oldinspector-theme.tswiring anduseDarkModeoverrides are gone.--ds-*design tokens that adapt to light/dark automatically, so strings stay green in both themes (no per-theme overrides)./source/flags), and named class instances all still render as before.data-inspector.styles.tsmodule (class-name map + CSS injected via a React 19 hoistable<style>); no behavior change.serializeForClipboardand added unit tests for clipboard serialization plusCopyableDataBlock/EncryptedDataBlockrendering.Changesets
Two
patchchangesets for@workflow/web-shared(JSON rendering rework + copyable data block tests).Test plan
...collapsed indicatorpnpm install --frozen-lockfilesucceeds in CI